#include <iostream>
#include <algorithm>
using namespace std;
const int N=310;
int st[N][N];
int b[N][N];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int n,m;
int dfs(int x,int y)
{
    if(st[x][y]!=-1) return st[x][y];
    st[x][y]=1;
    for(int i=0;i<4;i++)
    {
        int xx=x+dx[i];
        int yy=y+dy[i];
        if(xx<1 || xx>n || yy<1 || yy>m) continue;
        if(b[x][y]<=b[xx][yy]) continue;
        st[x][y]=max(st[x][y],dfs(xx,yy)+1);
    }
    return st[x][y];
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cin>>b[i][j];
            st[i][j]=-1;
        }
    }
    int res=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            res=max(res,dfs(i,j));
        }
    }
    cout<<res;
    return 0;
}
